home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
redakcyjne
/
programy
/
MediaMonkey 3.1.0.1256
/
MediaMonkey_3.1.0.1256.exe
/
{app}
/
Scripts
/
ExportM3Us.vbs
< prev
next >
Wrap
Text File
|
2009-03-04
|
3KB
|
115 lines
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' This file can be replaced in one of the future versions,
' so please if you want to modify it, make a copy, do your
' modifications in that copy and change Scripts.ini file
' appropriately.
' If you do not do this, you will lose all your changes in
' this script when you install a new version of MediaMonkey
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Option Explicit ' report undefined variables, ...
' SDB variable is connected to MediaMonkey application object
' Recursively process all playlists
Sub ReadPlaylists( playlists, plst, prefix)
Dim items
Set items = plst.ChildPlaylists
If prefix<>"" Then
prefix = prefix & " - "
End If
Dim i, newplst, title
For i=0 To items.Count-1
Set newplst = items.Item(i)
title = prefix & newplst.Title
If Not playlists.exists(title) Then
playlists.Add title, newplst
End If
ReadPlaylists playlists, newplst, title
Next
End Sub
Sub ExportM3Us
' Open inifile and get last used directory
Dim iniF
Set iniF = SDB.IniFile
' Let user select the output path
Dim path
path = iniF.StringValue( "Scripts", "LastExportM3UsDir")
path = SDB.SelectFolder( path, SDB.Localize( "Select where to export all M3U files."))
If path="" Then
Exit Sub
End If
If Right( path, 1)<>"\" Then
path = path & "\"
End If
' Write selected directory to the ini file
iniF.StringValue( "Scripts", "LastExportM3UsDir") = path
Set iniF = Nothing
' Connect to the FileSystemObject
Dim fso
Set fso = SDB.Tools.FileSystem
Dim playlists
Set playlists = CreateObject("Scripting.Dictionary")
' Use progress to notify user about the current action
Dim Progress, ExpText
Set Progress = SDB.Progress
ExpText = SDB.Localize("Exporting...")
Progress.Text = ExpText
' Prepare a list of all playlists
ReadPlaylists playlists, SDB.PlaylistByTitle( ""), ""
' Go through the list and export each playlist
Dim i, iTrck, plst, fout, plsts, titles, title, tracks, trck, ln, tlen, art, tit
plsts = playlists.Items
titles = playlists.Keys
Progress.MaxValue = playlists.count
For i=0 To playlists.Count-1
Set plst = plsts(i)
Set tracks = plst.Tracks
title = Titles(i)
Progress.Text = ExpText & " (" & title & ")"
If tracks.Count>0 Then
Set fout = fso.CreateTextFile( path & fso.CorrectFilename(title) & ".m3u", True)
fout.WriteLine "#EXTM3U"
For iTrck=0 To tracks.Count-1
Set trck = tracks.Item(iTrck)
ln = "#EXTINF:"
tlen = trck.SongLength
If tlen>0 Then
ln = ln & tlen \ 1000 & ","
Else
ln = ln & "-1,"
End If
art = trck.ArtistName
tit = trck.Title
If art<>"" Then
If tit<>"" Then
ln = ln & art & " - " & tit
Else
ln = ln & art
End If
Else
If tit<>"" then
ln = ln & tit
End If
End If
fout.WriteLine ln
fout.WriteLine trck.Path
Next
fout.Close
End If
Progress.Value = i+1
Next
End Sub